package org.seedltd.upms.model.detection.vo;

import java.util.Date;
import java.util.List;

import org.seedltd.core.jackson.annotation.DynamicEnum;
import org.seedltd.core.jackson.annotation.ToUserJsonString;
import org.seedltd.upms.constant.DictKeyConst;
import org.seedltd.upms.model.sys.vo.SysAttachmentVO;

import lombok.Getter;
import lombok.Setter;

/**
 * 试剂管维护显示层
 * 
 * @author laizuan
 * @since 2021/07/31
 */
@Getter
@Setter
public class DetectionTubeVO {

    /**
     * 主键
     */
    private Long id;

    /**
     * 二维码主键
     */
    private Long qrcodeId;

    /**
     * 二维码编号
     */
    private String codeNumber;

    /**
     * 二维码地址
     */
    private String qrcodePath;

    /**
     * 二维码状态
     */
    @DynamicEnum(type = DictKeyConst.QRCODE_STATE)
    private Integer qrcodeState;

    /**
     * 回收箱
     */
    private DetectionTerminalVO recycleBin;

    /**
     * 贩卖机
     */
    private DetectionTerminalVO vendingMachine;

    /**
     * 检测结果
     */
    private String checkResult;

    /**
     * 检测状态
     */
    @DynamicEnum(type = DictKeyConst.ORDER_CHECK_STATE)
    private Integer checkState;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 创建人主键
     */
    @ToUserJsonString
    private Long createBy;

    /**
     * 最后一次修改时间
     */
    private Date updateTime;

    /**
     * 最后一次修改人
     */
    @ToUserJsonString
    private Long updateBy;

    /**
     * 上传状态
     */
    private Integer uploadState;

    /**
     * 检查报告结果
     */
    private List<SysAttachmentVO> attachmentList;

    /**
     * 订单的检测项目
     */
    private List<DetectionOrderProductVO> detectionOrderProductList;

    /**
     * 最终分数
     */
    private Integer score;

    /**
     * 检测结果评分
     */
    private Integer resultScope;

    /**
     * 干预后等分
     */
    private Integer disturbResultScope;

    /**
     * 干预后结果字符串
     */
    private String disturbResultState;

    /**
     * 订单号
     */
    private String tradeNo;

    /**
     * 订单状态
     */
    @DynamicEnum(type = DictKeyConst.DETECTION_ORDER_STATUS)
    private Integer orderState;

    /**
     * 订单主键
     */
    private String orderId;

    /**
     * 报告附件对象
     */
    private SysAttachmentVO attachment;
}
